<?php
class Sistema {

	
	public static function getListaFuentes()
	{
		$sql="SELECT fuente FROM fuentes";
		$res = mysql_query($sql);
		$lista = array();
		while($fila = mysql_fetch_array($res,MYSQL_ASSOC))
		{
			$lista[]=$fila['fuente'];
		}
		return $lista;
	}
	
	public static function buscarPersona($opciones)
	{
		if(!isset($opciones["desde"],$opciones["cantidad"]))
		{
			$opciones['desde'] = 1;
			$opciones['cantidad'] = 10;
		}
		$sesion = new Sesion();
		$usuario = $sesion->getUsuario();
if(isset($opciones['persona']) and strlen($opciones['persona'])>0)
{
        //$persona=split(" ",$opciones['persona']);
        $persona['contenido']=$opciones['persona'];
        $nombrePer = str_replace(" ","",$opciones['persona']);
        $persona['sql'] ="
         select nombre,apellido1,levenshtein_ratio(lower('".$nombrePer."'),lower(nombre)) as distancia from usuarios
        WHERE levenshtein_ratio(lower('".$nombrePer."'),lower(nombre)) > 50
union
        select nombre,apellido1,levenshtein_ratio(lower('".$nombrePer."'),lower(apellido1)) as distancia from usuarios
        WHERE levenshtein_ratio(lower('".$nombrePer."'),lower(apellido1)) > 50
union
        select nombre,apellido2,levenshtein_ratio(lower('".$nombrePer."'),lower(apellido2)) as distancia from usuarios
        WHERE levenshtein_ratio(lower('".$nombrePer."'),lower(apellido2)) > 50
union
        (select nombre,apellido1,levenshtein_ratio(lower('".$nombrePer."'),lower(concat(nombre,apellido1))) as distancia from usuarios
WHERE levenshtein_ratio(lower('".$nombrePer."'),lower(concat(nombre,apellido1))) > 50
)
order by distancia DESC";
        
        /*$persona['sql']= "(LEVENSHTEIN_RATIO('".$nombrePer."',concat(nombre,apellido1,apellido2)) >= 50 or
                        LEVENSHTEIN_RATIO('".$nombrePer."',concat(nombre,apellido1))  >= 50 or
                        LEVENSHTEIN_RATIO('".$nombrePer."',concat(nombre)) >= 50 or
                        LEVENSHTEIN_RATIO('".$nombrePer."',concat(apellido1,apellido2))  >= 50 or
                        LEVENSHTEIN_RATIO('".$nombrePer."',concat(apellido1)) >= 50 or
                        LEVENSHTEIN_RATIO('".$nombrePer."',concat(apellido2))  >= 50 or
                        LEVENSHTEIN_RATIO('".$nombrePer."',concat(nombre,apellido2,apellido1))  >= 50)";
        */
        /*$persona['sql']= "(soundex(concat(nombre,apellido1,apellido2)) = soundex('".$nombrePer."') or
                        soundex(concat(nombre,apellido1)) = soundex('".$nombrePer."') or
                        soundex(concat(nombre)) = soundex('".$nombrePer."') or
                        soundex(concat(apellido1,apellido2)) = soundex('".$nombrePer."') or
                        soundex(concat(apellido1)) = soundex('".$nombrePer."') or
                        soundex(concat(apellido2)) = soundex('".$nombrePer."') or
                        soundex(concat(nombre,apellido2,apellido1)) = soundex('".$nombrePer."'))";
                        */
        //$persona=$opciones['persona'];
        $datos[] = $persona;
}

if($opciones['provincia']!=0 and is_numeric($opciones['provincia']))
{
        $provincia['contenido']=$opciones['provincia'];
        $provincia['sql'] ="id_provincia=".$opciones['provincia'];
        $datos[] = $provincia;
}
                
if(is_numeric($opciones['edadMin']) and is_numeric($opciones['edadMax']) and $opciones['edadMin']>=14 and $opciones['edadMax']<=14 )
{
        if($opciones['edadMin']>$opciones['edadMax'])
        {
                //Hacemos swap
                $tmp=$opciones['edadMin'];
                $opciones['edadMin']=$opciones['edadMax'];
                $opciones['edadMax']=$tmp;
        }
        
        $edad['sql']="(cumple <> '0000-00-00' and (DATEDIFF(now(),cumple)/365>".$opciones['edadMin']." and DATEDIFF(now(),cumple)/365<".$opciones['edadMax']."))";
        $datos[] = $edad;
        
}


if(isset($opciones['amigosDe']))
{
	if(!is_numeric($opciones['amigosDe']))
		$opciones['amigosDe'] = $usuario->getId();
		
        if($usuario->esAmigo($opciones['amigosDe']))
        {
                $sql="select id_amigo from amigos a
                JOIN usuarios u ON (u.id_usuario = a.id_amigo)
                WHERE a.id_usuario=".$opciones['amigosDe']; 
                $sqlCantidad="select count(*) from amigos a
                JOIN usuarios u ON (u.id_usuario = a.id_amigo)
                WHERE a.id_usuario=".$opciones['amigosDe']; 
                //$amigosDe = $opciones['amigosDe'];
        }
}else{          
        $sql="select id_usuario from usuarios WHERE 1"; 
        $sqlCantidad = "select count(*) from usuarios WHERE 1";
        //$amigosDe = $usuario->getId();
}

if(is_array($datos))
	foreach($datos as $dato)
	{
	        $sql .= " AND ".$dato['sql'];
	        $sqlCantidad .= " AND ".$dato['sql'];
	}

$opciones['desde']--;

$totalesRes = mysql_query($sqlCantidad);

$fila = mysql_fetch_array($totalesRes);
$totales = $fila[0];

$sql .= ' LIMIT '.$opciones['desde'].','.$opciones['cantidad'];

$res=mysql_query($sql);
$usuario=new Usuario();
$jsonUsuarios = array();

while($nombre=mysql_fetch_array($res,MYSQL_NUM))
{
                $usuario->cargarUsuarioConId($nombre[0]);
                if($usuario->esAmigo($sesion->getUsuario()))
                        $esAmigo = 1;
                else
                        $esAmigo = 0;
                        
                $jsonUsuario = array();
                $jsonUsuario['id'] = $usuario->getId();
                $jsonUsuario['nombre'] = $usuario->getNombre();
                $jsonUsuario['apellido1'] = $usuario->getApellido1();
                $jsonUsuario['apellido2'] = $usuario->getApellido2();
                $jsonUsuario['provincia'] = $usuario->getProvincia();
                $jsonUsuario['idFoto'] = $usuario->getFotoIdPrincipal();
                $jsonUsuario['nFoto'] = $usuario->getFotoNPrincipal();
                $jsonUsuario['esAmigo'] = $esAmigo;
                
                $jsonUsuarios[] = $jsonUsuario;


}
		

$info = array();
$info['totales']=$totales;
$info['usuarios']=$jsonUsuarios;
return $info;
		
	}
	
	public static function enviarEmail($destino,$asunto,$cuerpo)
	{
		/*$mail=new PHPMailer();

				$mail->IsSMTP();                                      // set mailer to use SMTP
				$mail->Host = "smtp.1and1.es";  // specify main and backup server
				$mail->SMTPAuth = true;     // turn on SMTP authentication
				$mail->Username = "wixet@congdegnu.es";  // SMTP username
				$mail->Password = "29gatitosmensajeros"; // SMTP password
				
				$mail->From = "contacto@wixet.com";
				$mail->FromName = "Wixet";
				$mail->AddAddress($destino);
				$mail->AddReplyTo("contacto@wixet.com", "Contacto");
				
				$mail->WordWrap = 50;                                 // set word wrap to 50 characters
				$mail->IsHTML(true);                                  // set email format to HTML
				
				$mail->Subject = $asunto;

				$mail->Body = $cuerpo;
				$mail->AltBody = "Lo siento pero tu navegador no cliente no soporta mensajes html";
				
				return $mail->Send();*/
				$ch = curl_init();
				$url = "http://wixetmail.congdegnu.es/enviarMailValidacion.php";
				curl_setopt($ch, CURLOPT_URL,$url);
				
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);	 
				curl_setopt ($ch, CURLOPT_POST, 1);
				curl_setopt($ch, CURLOPT_TIMEOUT, 30);
				curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
				curl_setopt ($ch, CURLOPT_POSTFIELDS, "destino=".$destino."&asunto=".$asunto."&cuerpo=".$cuerpo);
				$res = json_decode(curl_exec ($ch));
				return !$res->error;
				
	}
}
